// ① var声明的变量属于函数作用域；let 和 const 声明的变量属于块级作用域，不能跨函数访问；

// ② var存在变量提升现象，而 let 和 const 没有；

// ③ var变量可以重复声明，值可改变；在同一个块级作用域下：let变量不能重新声明；const定义的变量是常量，声明时必须赋值，但不允许重复赋值，如果定义的是引用类型，可以修改数据内部结构。